package com.xbongbong.saas.enums;

import com.xbongbong.i18n.util.I18nMessageUtil;
import lombok.Getter;

import java.util.ArrayList;
import java.util.List;

/**
 * e签宝套餐枚举，我们这边fee表的id跟e签宝套餐的对应关系,其中套餐名是给e签宝的，不需要国际化
 * 创建时间 2020/6/24 4:31 PM
 * 修改时间 2020/6/24 4:31 PM
 * @author chy
 */
@Getter
public enum EsignPackageEnum {
    /**
     * 50张电子合同/年
     */
    PACKAGE_50(10118, "itemCode", "套餐包A"),
    /**
     * 100张电子合同/年
     */
    PACKAGE_100(10119, "itemCode", "套餐包B"),
    /**
     * 200张电子合同/年
     */
    PACKAGE_200(10120, "itemCode", "套餐包C"),
    /**
     * 530张电子合同/年
     */
    PACKAGE_530(10121, "itemCode", "套餐包D"),
    /**
     * 900张电子合同/年
     */
    PACKAGE_900(10122, "itemCode", "套餐包E"),
    /**
     * 1400张电子合同/年
     */
    PACKAGE_1400(10123, "itemCode", "套餐包F"),
    /**
     * 2000张电子合同/年
     */
    PACKAGE_2000(10124, "itemCode", "套餐包G"),
    /**
     * 3000张电子合同/年
     */
    PACKAGE_3000(10125, "itemCode", "套餐包H"),
    /**
     * 4700张电子合同/年
     */
    PACKAGE_4700(10126, "itemCode", "套餐包I"),
    /**
     * 6500张电子合同/年
     */
    PACKAGE_6500(10127, "itemCode", "套餐包J"),
    /**
     * 19000张电子合同/年
     */
    PACKAGE_19000(10128, "itemCode", "套餐包K"),

    ;

    /** 销帮帮fee表中的id -- */
    private final long id;
    /** e签宝的产品id */
    private final String itemCode;
    /** e签宝的产品名 */
    private final String itemName;

    EsignPackageEnum(long id, String itemCode, String itemName) {
        this.id = id;
        this.itemCode = itemCode;
        this.itemName = itemName;
    }

    /**
     * 获取全部枚举
     *
     * @return List<EsignPackageEnum>
     */
    public static List<EsignPackageEnum> getAllEnum() {
        List<EsignPackageEnum> list = new ArrayList<>();
        for (EsignPackageEnum cache : values()) {
            list.add(cache);
        }
        return list;
    }

    /**
     * 根据id获取枚举
     * @return
     */
    public static EsignPackageEnum getById(int id) {
        for (EsignPackageEnum cache : values()) {
            if (id == cache.getId()) {
                return cache;
            }
        }
        return null;
    }

}
